package work.mediway.mdm.core.enums;

import com.mediway.hos.base.exception.BaseExceptionEnum;

import lombok.Getter;
import lombok.Setter;

/**
 * 通用的枚举
 *
 * @author zhongyj <1126834403@qq.com><br/>
 * @date 2019/11/7
 */
public enum CodeAndMessageEnum implements BaseExceptionEnum {

    /**
     * WEBSERVICE
     */
    WEBSERVICE_SUCCESS("0", "成功"),

    WEBSERVICE_ERROR("-1", "失败"),

    /**
     * 文件上传
     */
    FILE_READING_ERROR("400", "文件读取错误"),
    // 文件不存在
    FILE_NOT_FOUND("400", "文件不存在"),
    // 上传图片出错
    UPLOAD_ERROR("500", "上传图片出错"),
    // 上传文件出错
    UPLOAD_FILE_ERROR("500", "上传文件出错"),

    /**
     * 权限和数据问题
     */
    // 数据库中没有该资源
    DB_RESOURCE_NULL("400", "数据库中没有该资源"),
    /**
     * 错误的请求
     */
    // 请求有错误
    REQUEST_NULL("400", "请求有错误"),
    // 请求参数为空
    REQUEST_PARAM_NULL("400", "请求参数为空"),
    // 会话超时
    SESSION_TIMEOUT("400", "会话超时"),
    // 服务器异常
    SERVER_ERROR("500", "服务器异常,请联系管理员"),
    /**
     * 操作成功
     */
    SUCCESS("200", "操作成功"),
    /**
     * 操作失败
     */
    FAIL("300", "操作失败"),
    /**
     * 操作失败
     */
    FIELD_INCOMPLETE("301", "必需字段数据不完整"),

    /**
     * 找不到资源
     */
    NOT_FOUND("404", "找不到资源"),


    /**
     * 请求中指定的方法不被允许
     */
    METHOD_NOT_ALLOWED("405", "请求中指定的方法不被允许"),

    /**
     * 请求头中指定的一些前提条件失败，例如请求参数错误或为空
     */
    PRECONDITION_FAILED("412", "请求头错误");

    CodeAndMessageEnum(String code, String message) {
        this.code = code;
        this.message = message;
    }

    @Setter
    @Getter
    private String code;
    @Setter
    @Getter
    private String message;

    @Override
    public String getMsg() {
        return message;
    }
}
